#include "utils.h"

void *MyAlloc(size_t size)
{
	void* mem_alloc=malloc(size);
	if (mem_alloc==NULL)
		Error("Erreur allocation! plus de place ??\n");
	return mem_alloc;
}

void *MyRealloc(void* ptr,size_t size)
{
	void* mem_alloc=realloc(ptr,size);
	if (mem_alloc==NULL)
		Error("Erreur allocation! plus de place ??\n");
	return mem_alloc;
}
FILE* MyFopen(const char* filename, const char* options)
{
	FILE* fd=fopen(filename, options);
	if (fd==NULL)
	{
		char buff[256];
		sprintf(buff,"Could not open the file %s",filename);
		Error(buff);
	}
	return fd;
}
inline char MyFgetc_loc(FILE* fd)
{
	int c_int; 
	c_int = fgetc(fd);
	if (c_int==EOF)
	{
		Error("EOF Loaded");
	}
	else
	{
		return (char)c_int;
	}
}

inline char MyFgetc(FILE* fd)
{
	char c=MyFgetc_loc(fd);
	if (c=='#')
	{
		do
		{
			c=MyFgetc_loc(fd);
		}
            	while ( c != '\n' && c != '\r' );
		/* on v�rifie que la ligne suivante n'est pas un commentaire !!*/
		return MyFgetc(fd);
	}
	else
	return c;
}

inline int MyFgeti(FILE* fd)
{
	char c;
	int value=0;
	/* on va jusqu'� la prochaine valeur*/
	do
	{
		c=MyFgetc(fd);
	}
	while ( c < '0' || c >'9' );
	
	while ( c >= '0' && c <='9' )
	{
		value=10*value+ (int) (c-'0');
		c=(char)fgetc(fd);
	}
	return value;
}
